perm filename SYNSUB.FAI[PIX,HPM]1 blob sn#276778 filedate 1977-04-16 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00015 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE SYNSUB
C00003 00003	HELPER:	OUTSTR	[ASCIZ \
C00007 00004	TYPEQ:	OUTSTR	[ASCIZ \
C00008 00005	NOCHAN:
C00009 00006	FILNM:
C00011 00007	COLON:
C00012 00008	FONTNO:	POP	P,RETAD
C00013 00009	FEWCHN:
C00014 00010	CRLF:	OUTSTR	[ASCIZ \
C00015 00011	FIRST:	SKIPN	FIRF
C00016 00012	FIRST1:	SKIPN	FIRF1
C00017 00013	FIRST2:	SKIPN	FIRF2
C00018 00014	FIRST3:	SKIPN	FIRF3
C00019 00015		END
C00020 ENDMK
C⊗;
	TITLE SYNSUB
	ENTRY	HELPER,TYPEQ,NOCHAN,FEWCHN,FIRST1,FIRST2,FIRST3,FIRST,CRLF
	ENTRY	FILNM,COLON,FONTNO

P←17 ↔ A←1 ↔ B←2 C←3 ↔ D←4

RETAD:	0
RETAD1:	0
ESS:	0
SING:	[ASCIZ \is\]
PLUR:	[ASCIZ \s are\]

NUMOUT:	POP	P,RETAD1
	POP	P,A
	MOVE	C,[POINT 7,D]
	SETZ	D
	MOVE	0,SING
	CAIE	A,1
	MOVE	0,PLUR
	MOVEM	0,ESS
DLOO:	IDIVI	A,=10
	ADDI	B,60
	IDPB	B,C
	JUMPG	A,DLOO
	OUTSTR	D
	JRST	@RETAD1

HELPER:	OUTSTR	[ASCIZ \
XGPSYN displays pages from .XGP files (as produced by PUB and POX), on the
video synthesizer. It can show half pages at high resolution, full pages
lying on their side at barely readable resolution, or two unreadable pages
side by side, with their large scale structure visible.

To use it give it your file name when it asks. The .XGP extension is
assumed, and need not be typed. Then tell it the density you want, H (1/2
page), F (1 page) or D (2 pages).  Then give it page numbers.  In H
density you may specify a non integer page, 3.5, for example, to see
bottom half of page 3. In F density specify the full page you wish to see.
In D density the page you give, and the next one, are displayed.  Pages in
files with too few formfeeds may be accessed by appending a page count
after the ff count (eg. 2-5 is the fifth page after the ff indicating page
2).  When the program types DONE, you may look at the output at data disc
terminals with <esc>47S. It usually helps to adjust brightness and
contrast.

Note that page 1 in .XGP files contains the font descriptions, and is not
interesting to display. You may also answer the page question with <cr> to
see the next window, H, F or D to change the density, V to redraw the last
display or K to erase the snthesizer.

The video synthesizer is a video rate D/A driven by data disc channels 30
through 37. H density requires 3 of these channels, F needs 4 and D wants
5. These are rarely available during heavy system load periods.  About 10
CPU seconds are required to compose a single page.

Special modes: O outputs the last display as a hand/eye format picture file.
         B density generates a 1 bit/sample uncompressed display of one page.
         T density generates a sideways 1 bit/sample uncompressed display.
	 X sends the last display to the XGP, only sensible in B or T density.
\]
	POPJ	P,
TYPEQ:	OUTSTR	[ASCIZ \
Type ?<cr> for help

\]
	POPJ	P,
NOCHAN:
	OUTSTR	[ASCIZ \Right now there are no synthesizer channels available at all.
This program isn't worth running under those conditions.

\]
	POPJ	P,
FILNM:
	OUTSTR	[ASCIZ \FILE NAME\]
	POPJ	P,
COLON:
	OUTSTR	[ASCIZ \:\]
	POPJ	P,
FONTNO:	POP	P,RETAD
	OUTSTR	[ASCIZ \FONT#\]
	PUSHJ	P,NUMOUT
	OUTSTR	[ASCIZ	\=\]
	JRST	@RETAD
FEWCHN:
	POP	P,RETAD
	OUTSTR	[ASCIZ \
Only \]
	PUSHJ	P,NUMOUT
	OUTSTR	[ASCIZ	\ synthesizer channel\]
	OUTSTR	ESS
        OUTSTR	[ASCIZ \ available, you probably don't
want to continue. Image quality will be very poor.

\]
	JRST	@RETAD
CRLF:	OUTSTR	[ASCIZ \
\]
	POPJ	P,
FIRST:	SKIPN	FIRF
	OUTSTR	[ASCIZ \
(or H,F or D to change density,
 or V to redraw display, or K to erase it,
 or just <cr> for next window.)\]
	AOS	FIRF
	POPJ	P,

FIRF:	0
FIRST1:	SKIPN	FIRF1
	OUTSTR	[ASCIZ \
(eg. 3.5 for bottom of page 3 [or 2-1.5 in files without formfeeds])\]
	AOS	FIRF1
	POPJ	P,

FIRF1:	0
FIRST2:	SKIPN	FIRF2
	OUTSTR	[ASCIZ \ <esc>47S to view\]
	AOS	FIRF2
	POPJ	P,

FIRF2:	0
FIRST3:	SKIPN	FIRF3
	OUTSTR	[ASCIZ \(and optional switches)\]
	AOS	FIRF3
	POPJ	P,

FIRF3:	0
	END